The invention relates to serving data from a resource limited system.
The increasingly widespread use of the Internet and the World Wide Web in business environments has led to the establishment of TCP/IP, the Internet""s transport protocol, as the de facto standard for domestic and international networked communications between individuals and organizations. Concomitantly, organizations have come to recognize the value of adopting TCP/IP as an internal networking protocol for use with so-called xe2x80x9cintranets.xe2x80x9d An organization""s internal use of TCP/IP-based networks permits the organization to exploit the growing body of software designed for the Internet, and in particular web browsers, for internal purposes.
A web browser is a program which is capable, while running on a given computer system, of displaying audiovisual hypertext data (known as web pages) transmitted from a remote computer system (known as a web site) which is connected to the given computer via a TCP/IP based network. Web browsers are also capable of receiving input from a user (typically in response to information displayed on a web page), and transmitting that information back to the web site.
A web site is said to xe2x80x9cservexe2x80x9d a web page when it transmits xe2x80x9cweb page dataxe2x80x9d to a web browser running on a remote computer system, in response to a request from that browser. Web page data consists of a stream of instructions to the web browser describing the appearance and contents of the web page. These instructions may include simple text and formatting commands, as well as instructions to include other resources, such as audio or graphics files which can be access via the network. They may also include instructions for creating hypertext links to other web pages, and for creating input forms by which the user may input data to the web browser to be transmitted to a web site.
The software on a web site which performs this task is called a xe2x80x9cweb server.xe2x80x9d The web server and web browser typically communicate using a transfer protocol known as Hypertext Transfer Protocol (HTTP) (which describes how data are transmitted between the server and the browser), and a content protocol known as HyperText Markup Language (HTML) (which describes how the data transmitted to the web browser should be displayed).
Communication between a web browser and a web server is typically initiated by the web browser transmitting to the web server an HTTP xe2x80x9crequestxe2x80x9d message, requesting that web page information be transmitted to the web browser. The request will include a xe2x80x9cUniversal Resource Locatorxe2x80x9d (URL), which specifies to the web server the location of the information being sought.
The request may also contain additional data which can be used by the web server to further define the information being requested by the web browser.
HTTP provides two principal types of request messages, GET and POST. In a GET message, any additional data is appended to the URL to create a string of the form  less than URL greater than ? less than DATA greater than . In the case of a POST message, any additional data is transmitted in a separate segment of the request message.
In a typical web site, a URL identifying information on that web site corresponds to a particular file stored on the web site""s file system. When an HTTP request message is received at the web site, the file type of the file associated with the URL specified in the HTTP request is checked. If the file contains data, the web server responds to the HTTP request by transmitting the contents of that file back to the web browser. If the file is a program file, the program is executed, and the output of that program is transmitted back to the requesting web browser.
When the file is a program file, the additional data contained in the HTTP request may be accessed by the program when it executes. The additional data is typically passed to the program according to a protocol known as Common Gateway Interface (CGI). This mechanism permits the program to generate output which is dependent on the inputs received from the web browser.
The data transmitted to a web browser in response to an HTTP request may consist of data in any one of a variety of formats. One frequently used format is HTML. If the data represents a web page in HTML format it will consist of a sequence of ASCII text including HTML statements. Typically, some of the HTML statements will indicate that data found at other URLs should be included in the web page display. When a web browser receives such an HTML statement, it issues HTTP commands to retrieve the data specified by the URL, and includes the data received in response in its display of the web page. These references to other URLs, which I refer to as xe2x80x9cclient-side includes,xe2x80x9d permit a single file of HTML statements to represent a web page composed of data from multiple locations. For example, a web page could include a graphical image which is stored in a different location than the page itself. Note that the included data does not presently consist of additional HTML statements.
By contrast to a xe2x80x9cclient-side includexe2x80x9d, which entails the web browser incorporating external information into a web page before displaying it, some web servers support xe2x80x9cserver-side includes,xe2x80x9d statements within an HTML file which cause the web server to insert dynamically generated information within the file just prior to transmitting it to the requesting web browser.
As described above, a web server is also capable of receiving data from a web browser. Typically, this data is provided through the HTML xe2x80x9cformsxe2x80x9d mechanism. An HTML FORM statement contained within a web page directs the web browser to display interactive data input mechanisms (e.g. radio buttons, check boxes, text input boxes) to the user. The user can use these mechanisms to specify information which is then transmitted back to a program on the web site specified by a URL within the FORM statement. The receiving program typically processes the form data and outputs an HTML page in response.
Another class of software systems which are widely used on the Internet are electronic mail (email) processing systems. Email processing systems permit email messages to be transferred between computer systems on the internet in a unilateral fashion. That is, an email message may be sent from a first computer system to a second computer system, without the second computer having requested the transfer. Email messages are typically directed to a specific file system directory or file on the recipient computer system known as a xe2x80x9cmailbox.xe2x80x9d Incoming messages are appended to the mailbox permitting a user to view them at a later time.
Internet email messages include header information, and a body. The header information includes at a minimum, addressing information indicating the address to which the message is directed. An email message may also include attachments, which are files appended to, but conceptually separate from, the main body of the message. The internet mail protocol is known as the Simple Mail Transport Protocol (SMTP) and is described, for example, in Request for Comments (RFC) 821, xe2x80x9cSimple Mail Transport Protocolxe2x80x9d, published by the Internet Engineering Task Force. The standard format for internet mail messages is described in Request for Comments (RFC) 822, xe2x80x9cMail Message Formatxe2x80x9d, published by the Internet Engineering Task Force.
The growing use of intranets has created a demand to use web browsers to access/or and configure xe2x80x9cresource limited systems.xe2x80x9d A resource limited system lacks one or more of the computing resources of a typical personal computer or workstation: a hard disk drive, a general purpose operating system, or adequate RAM to effectively operate a conventional web server. Examples of such resource-limited systems include non-standard internal devices such as internetworking equipment (e.g. routers, switches, and hubs); printers; power management devices; and industrial control equipment.
A web browser provides a potentially excellent interface for accessing and configuring non-standard internal devices. By using a standard web browser, a user could access web pages to display status information from a networked device, and by using the HTML forms mechanism a user could transmit control information to the device.
However, existing web servers are typically designed to run on a disk-based personal computer or workstation running a standard commercially available operating system such as UNIX, OS/2, Microsoft Windows or Apple Macintosh OS. They are thus ill-suited to run on a resource limited system.
While some non-standard internal devices do support operating systems which provide disk system emulation routines and multiple processing, these more complex operating system facilitate the use of conventional web servers only at the cost of placing significant demands on the system""s limited process or memory resources.
The present invention provides a method for serving data from a networked device. Data is generated from a resource object associated with Page Items representing fragments of data (e.g. HTML statements or other text information).
A data resource request signal (e.g. an HTTP GET message, a signal generated by the device hardware) is received at a first device. A first resource object is selected in the first device. For a plurality of sequential page items associated with the first resource object, successive data fragments are generated according to instructions specified by the successive page items. At least the successive data fragments are concatenated (e.g. placed in sequence in a buffer) to form a stream of formatted data. The stream of web page data is transmitted to a second networked device via the network.
Preferred implementations may include one or more of the following features.
The data resource request signal may be a signal generated within the first device.
The data resource request signal may be a message received from the second device via the network.
The message received from the second device may be an email message.
The message received from the second device may be an HTTP message.
The request message received from the second device may further contain web page form data (e.g. a plurality of name=value pairs representing responses to HTML form inputs), a second resource object in the first device may be identified, and, for name=value pairs specified in the web page form data page, items associated with the second resource object may be selected such that the name associated with the page item corresponds to the name of the name=value pair and the value of the name=value pair may be processed according to instructions specified by the selected page item.
The instructions specified by a page item may include substituting tokens with text strings according to a lookup dictionary.
The instructions specified by a page item may include generating data fragments according to instructions specified by a plurality of page items specified by the page item.
The instructions specified by at least one of the successive page items may include instructions for initializing state information associated with the page item (e.g. setting an index variable to a start value associated with the page item) and, while a test specified by the page item (e.g. comparing the index variable to a limit value specified by the page item) produces a positive result, repeating steps including, generating data fragments according to instructions specified by a plurality of page items specified by the page item and performing other steps specified by the page item (e.g. incrementing the index variable by an increment value specified by the page item).
The state information may be an index variable, the state information may be initialized by setting the index variable to a start value specified by the page item, the test may compare the index variable to a limit value specified by the page item, and the other steps specified by the page item may include incrementing the index variable by an amount specified by the page item.
The message received from the second device may further contain coded information (e.g. a string of the form xe2x80x9c?i, j, kxe2x80x9d appended to the URL, where i, j and k are integers) and the instructions specified by the successive page items may depend on the coded information.
The first device may be a resource limited system.
The first device may not have a hard disk drive.
The message received from the second device may includes a Universal Resource Locator.
At least one of the plurality of successive page items from which successive data fragments (e.g. HTML form INPUT statements) are generated may be the same as the selected page item having its associated name corresponding to the name=value pair (e.g. the web page form data corresponding to a user""s response to an HTML form INPUT statement generated according to instructions specified by the page item).
The first resource object may be specified by the data resource request signal.
The second resource object may be specified by the data resource request signal and the first resource object may be specified by the second resource object.
The stream of formatted data may include HTML data.
The stream of formatted data may include an email message.
The stream of formatted data may be transmitted using the HTTP protocol.
The stream of formatted data may be transmitted using the SMTP protocol.
At least one of the page items associated with the first resource object may also be associated with at least a second resource object distinct from the first.
Other features and advantages of the invention will become apparent from the following description of preferred embodiments, including the drawings, and from the claims.